Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Лабораторна робота №3
з дисципліни
«Комп’ютерна графіка»
на тему:
“Паралельні та косокутні проекції”
Мета: Ознайомлення з елементарним математичним апаратом плоских геометричних проекцій.
ТЕОРЕТИЧНІ ОСНОВИ
Паралельні проекції.
Будемо вважати, що при центральному проектуванні картинна площина перпендикулярна осі z і збігається з площиною z = d, а при паралельному збігається з площиною z = 0. Проекції розглядаються в системі координат спостерігача, що є лівосторонньою. Система координат, в якій вісь x спрямована вправо, y – вгору, а вісь z – усередину екрана, природно погоджується з екраном дисплея.
Точка Р проектується на проекційну площину, розташовану на відстані d від початку координат. Для обчислення координат Xp і Yp проекції точки (x, y, z) напишемо співвідношення, отримані з подібності трикутників:
Перемножуючи обидві сторони кожного співвідношення на d, одержимо:
Відстань d є в даному випадку масштабним множником, застосованим до координат Xp і Yp. Фактором, що приводить до того, що на центральній проекції більш віддалені об’єкти виглядають дрібніше, ніж ближчі, є ділення на z. Відзначимо, що допустимі всі значення z, крім z = 0. Точки можуть розташовуватися як за центром проекції на від’ємній частині осі z, так і між центром проекції та проекційною площиною.
При іншому представленні центрального проектування, застосованого в деяких роботах, проекційна площина сполучається з площиною 2 = 0, а центр проекції розташовується в точці 2 = – с. З подібності трикутників випливає:
Звідси одержуємо:
Ортографічне проектування на площину z = 0 очевидне. Напрямок проектування збігається з нормаллю до площини проекції, тобто в нашому випадку з віссю z. Таким чином точка Р має координати:
Косокутні проекції.
Тепер розглянемо довільну точку (x, y, z) і визначимо її косокутну проекцію Xp і Yp на площину xy. Рівняння для x- і y-координат проектора як функцій z мають вид y = mz+b. Вирішуючи два рівняння відносно Xp і Yp, одержуємо:
ПОРЯДОК РОБОТИ
Побудувати декартову тривимірну систему координат. Побудувати точку з довільними координатами.
Побудувати паралельну проекцію точки. Для цього задати розміщення паралельної площини – відстань d. Вивести на екран спроектовану точку на площину та вказати, які вона матиме координати.
Побудувати косокутну проекцію точки. Для цього додатково потрібно задати, під яким кутом β будемо дивитися на площину xy та під яким кутом α відносно початку координат буде розміщена спроектована точка. Вивести на екран спроектовану точку на площину та вказати, які вона матиме координати.
Текст програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Bevel1: TBevel;
PaintBox1: TPaintBox;
MainMenu1: TMainMenu;
N9,N10,N11,N12: TMenuItem;
Izo30,Izo45,Izo60: TMenuItem;
Dim30,Dim45,Dim60: TMenuItem;
Label1,Label2,Label3,Label4: TLabel;
Label5,Label6,Label7,Label8: TLabel;
Label9,Label10,Label11: TLabel;
ed,ex,ey,ez,ua,eb: TEdit;
BitBtn1: TBitBtn;
RadioGroup1: TRadioGroup;
procedure Chusto;
procedure MyLine(x1,y1,x2,y2: integer);
procedure Podilku;
procedure KoorOsi;
procedure Tochka(x,y,z: double; c: Tcolor);
procedure Plowuna(d: integer; c: Tcolor);
procedure PaintBox1Paint(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure Izo30Click(Sender: TObject);
procedure Izo45Click(Sender: TObject);
procedure Izo60Click(Sender: TObject);
procedure Dim30Click(Sender: TObject);
procedure Dim45Click(Sender: TObject);
procedure Dim60Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
public
end;
type matrix= array[1..8,1..4] of double;
c...